import configparser
import os

config_path = 'config.ini'


def init_config(config_path):
    # 判断文件是否存在
    if not os.path.exists(config_path):
        # 设置redis env
        config = configparser.ConfigParser()
        config.add_section('redis')  # 添加redis配置项
        config.set('redis', 'host', 'localhost')  # 设置redis主机
        config.set('redis', 'port', '6379')  # 设置redis端口
        config.set('redis', 'redispath', 'C:\dbMidder\Redis-x64-3.2.100')  # 设置redis数据库
        config.set('redis', 'password', 'engi')  # 设置redis密码
        # 设置java env
        config.add_section('java')  # 添加java配置项
        config.set('java', 'java_path', "C:\Program Files\Java\jdk-11.0.1\\bin")  # 设置java路径
        config.set('java', 'jar_path', 'C:\dbMidder\dbMidder-1.8.6-micro-exec.jar')  # 设置jar包路径
        config.set('java', 'port', '8585')  # 设置jvm参数
        # 设置postgres env

        config.add_section('postgres')  # 添加postgres配置项
        config.set('postgres', 'host', 'postgresql.postgresql.svc.cluster.local')  # 设置postgres主机
        config.set('postgres', 'port', '5432')  # 设置postgres端口
        config.set('postgres', 'database', 'postgres')  # 设置postgres数据库
        # 设置项目名
        config.add_section('project')  # 添加项目配置项
        config.set('project', 'project_name', 'engi')  # 设置项目名
        config.set('project', 'project_args', ' ')  # 设置项目启动参数
        config.set('project', 'project_env', 'dev')  # 设置项目环境
        # 写入配置文件

        with open(config_path, 'w') as configfile:
            config.write(configfile)  # 写入配置文件
        print('初始化配置文件成功')
    else:
        print('配置文件已存在')


def get_config(config_path, section, key):
    config = configparser.ConfigParser()
    try:
        config.read(config_path)
        return config.get(section, key)
    except Exception as e:
        print('获取{}配置项{}失败，原因：{}'.format(section, key, e))
        return None


def set_config(config_path, section, key, value):
    config = configparser.ConfigParser()
    try:
        config.read(config_path)
        config.set(section, key, value)
        with open(config_path, 'w') as configfile:
            config.write(configfile)  # 写入配置文件
        print('设置{}配置项{}成功'.format(section, key))
        return True
    except Exception as e:
        print('设置{}配置项{}失败，原因：{}'.format(section, key, e))
        return False, e


if __name__ == '__main__':
    init_config('config.ini')
